{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.9"
},
"colab": {
"name": "201_3rd Order Taylor_Population_growth.ipynb",
"provenance": [],
"include_colab_link": true
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ha9uRpGfODa_"
},
"source": [
"# Taylor Method\n",
"\n",
"This notebook implements the 3rd order Taylor method for three different population intial value problems.\n",
"The Taylor method is derived from the Taylor expansion as depicted by Monica Alexander in the figure below:\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OUt5-rTqARd4"
},
"source": [
"# 3rd Order Taylor\n",
"The general 3rd Order Taylor method for to the first order differential equation\n",
"\\begin{equation} y^{'} = f(t,y), \\end{equation}\n",
"numerical approximates $y$ the at time point $t_i$ as $w_i$\n",
"with the formula:\n",
"\\begin{equation}\n",
" w_{i+1}=w_i+h\\big[f(t_i,w_i)+\\frac{h}{2}f'(t_i,w_i)+\\frac{h^2}{6}f''(t_i,w_i)\\big],\\end{equation}\n",
"where $h$ is the stepsize.\n",
"for $i=0,...,N-1$.\n",
"With the local truncation error of \n",
"\\begin{equation}\n",
"\\tau=\\frac{h^3}{24}y^{''''}(\\xi_i),\\end{equation}\n",
"where $\\xi \\in [t_i,t_{i+1}]$.\n",
"To illustrate the method we will apply it to three intial value problems:\n",
"## 1. Linear \n",
"Consider the linear population Differential Equation\n",
"\\begin{equation}\n",
" y^{'}=0.1y, \\ \\ (2000 \\leq t \\leq 2020), \\end{equation}\n",
"with the initial condition,\n",
"\\begin{equation}\n",
"y(2000)=6.\\end{equation}\n",
"\n",
"## 2. Non-Linear Population Equation \n",
"Consider the non-linear population Differential Equation\n",
"\\begin{equation}\n",
" y^{'}=0.2y-0.01y^2, \\ \\ (2000 \\leq t \\leq 2020), \\end{equation}\n",
"with the initial condition,\n",
"\\begin{equation}\n",
"y(2000)=6.\n",
"\\end{equation}\n",
"\n",
"## 3. Non-Linear Population Equation with an oscillation \n",
"Consider the non-linear population Differential Equation with an oscillation \n",
"\\begin{equation}\n",
" y^{'}=0.2y-0.01y^2+\\sin(2\\pi t), \\ \\ (2000 \\leq t \\leq 2020), \n",
" \\end{equation}\n",
"with the initial condition,\n",
"\\begin{equation}\n",
"y(2000)=6.\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "473Z6TOLODbC"
},
"source": [
"## Read in Libraries "
]
},
{
"cell_type": "code",
"metadata": {
"id": "fxAaiYTUODbC"
},
"source": [
"## Library\n",
"import numpy as np\n",
"import math \n",
"import pandas as pd\n",
"\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt # side-stepping mpl backend\n",
"import matplotlib.gridspec as gridspec # subplots\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")\n"
],
"execution_count": 1,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "qMHjaYl0ODbD"
},
"source": [
"## Discrete Interval\n",
"The continuous time $a\\leq t \\leq b $ is discretised into $N$ points seperated by a constant stepsize\n",
"\\begin{equation} h=\\frac{b-a}{N}.\\end{equation}\n",
"Here the interval is $2000\\leq t \\leq 2020,$ \n",
"\\begin{equation} h=\\frac{2020-2000}{200}=0.1.\\end{equation}\n",
"This gives the 201 discrete points:\n",
"\\begin{equation} t_0=2000, \\ t_1=2000.1, \\ ... t_{200}=2020. \\end{equation}\n",
"This is generalised to \n",
"\\begin{equation} t_i=2000+i0.1, \\ \\ \\ i=0,1,...,200.\\end{equation}\n",
"The plot below shows the discrete time steps:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "Wo44v6EGODbE",
"outputId": "af02c1a7-602c-41dc-83bd-8f14d3a71552"
},
"source": [
"N=200\n",
"t_end=2020.0\n",
"t_start=2000.0\n",
"h=((t_end-t_start)/N)\n",
"t=np.arange(t_start,t_end+h/2,h)\n",
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(t,0*t,'o:',color='red')\n",
"plt.title('Illustration of discrete time points for h=%s'%(h))\n",
"plt.show()"
],
"execution_count": 2,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hJ0st31-ODbF"
},
"source": [
"# 1. Linear Population Equation\n",
"## Exact Solution \n",
"The linear population equation\n",
"\\begin{equation} y^{'}=0.1y, \\ \\ (2000 \\leq t \\leq 2020), \\end{equation}\n",
"with the initial condition,\n",
"\\begin{equation}y(2000)=6.\\end{equation}\n",
"has a known exact (analytic) solution\n",
"\\begin{equation} y=6e^{0.1(t-2000)}. \\end{equation}\n",
"\n",
"## Specific 3rd Order Taylor for the Linear Population Equation\n",
"To write the specific 3rd Order Taylor difference equation for the intial value problem we need to calculate the first derivative of \n",
"\\begin{equation}f(t,y)=0.1y,\\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZjgpxQNFODbG"
},
"source": [
"def linfun(t,w):\n",
" ftw=0.1*w\n",
" return ftw"
],
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "HXsIvZDJODbG"
},
"source": [
"with respect to $t$,\n",
"\\begin{equation} f'(t,y)=0.1y'=0.1(0.1y)=0.01y, \\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Ruyx9xAJODbH"
},
"source": [
"def linfun_d(t,w):\n",
" ftw=0.01*w\n",
" return ftw"
],
"execution_count": 4,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "MOIUP5sZODbH"
},
"source": [
"and the second derivative of $f$ with respect to $t$,\n",
"\\begin{equation}f'(t,y)=0.01y'=0.01(0.1y)=0.001y.\\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "6tYzrvMaODbI"
},
"source": [
"def linfun_dd(t,w):\n",
" ftw=0.001*w\n",
" return ftw"
],
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "YUsnX-FWODbI"
},
"source": [
"### Linear Population 3rd Order Taylor Difference equation\n",
"Substituting the derivatives of the linear population equation into the 3rd order Taylor equation gives the difference equation \n",
"\\begin{equation} w_{i+1}= w_{i} + h\\big[0.1 w_i+\\frac{h}{2}(0.01 w_i)+\\frac{h^2}{6}(0.001w_i)\\big],\\end{equation}\n",
"for $i=0,...,199$, where $w_i$ is the numerical approximation of $y$ at time $t_i$, with the initial condition\n",
"\\begin{equation}w_0=6.\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HnNG9Aq0ODbI"
},
"source": [
"## Method"
]
},
{
"cell_type": "code",
"metadata": {
"id": "hOZYF_FxODbJ"
},
"source": [
"w=np.zeros(N+1)\n",
"w[0]=6.0\n",
"for i in range (0,N):\n",
" w[i+1]=w[i]+h*(linfun(t[i],w[i])+h/2*linfun_d(t[i],w[i])+h*h/6*linfun_dd(t[i],w[i]))"
],
"execution_count": 6,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "ooSHEf0FODbJ"
},
"source": [
"## Results\n",
"The plot below shows the exact solution, $y$ (squares) and the 3rd order numberical approximation, $w$ (circles) for the linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "nYD_k3vhODbJ",
"outputId": "337ae75a-8a2f-4728-932e-f05165fcba5b"
},
"source": [
"y=6*np.exp(0.1*(t-2000))\n",
"fig = plt.figure(figsize=(8,4))\n",
"plt.plot(t,w,'o:',color='purple',label='Taylor')\n",
"plt.plot(t,y,'s:',color='black',label='Exact')\n",
"plt.legend(loc='best')\n",
"plt.show()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAD4CAYAAAA0JjXXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdJ0lEQVR4nO3df7TcdX3n8eebGAw/YgzhbpIlYNKuAmqai14omtYgLJZStVTbAlJNUE9ql3L0tLZKe44/WjmLe6x0191jG6AJS6NEqAr+oBURjqe7FXKhCQGyVFTcDSfAbYoJHAwk4b1/zHfizeVO7tw735n5zszzcc6czHy/3/l+35/7vZPX/Xy+PyYyE0mS1FlHdLsASZIGkQEsSVIXGMCSJHWBASxJUhcYwJIkdcFLOrmx448/PpcuXdrJTUqS1DX33nvvv2bm0GTzOhrAS5cuZXR0tJOblCSpayLix43mOQQtSVIXGMCSJHVB0wEcEbMi4p8j4uvF6w0R8aOI2FI8httXpiRJ/WU6x4A/CGwHXjZu2h9l5s2tFLBv3z527NjB3r17W1lNz5ozZw5Llixh9uzZ3S5FktRBTQVwRCwBfg24EviDMgvYsWMHc+fOZenSpUREmauuvMxk165d7Nixg2XLlnW7HElSBzU7BP2XwB8DL0yYfmVE3B8RV0fESyd7Y0SsjYjRiBgdGxt70fy9e/eyYMGCgQtfgIhgwYIFA9v7l6QqWLRoERHxoseiRYvaut0pAzgi3go8mZn3Tph1BXAKcDpwHPCRyd6fmesycyQzR4aGJr0UaiDDt26Q2y5JVfDEE09Ma3pZmukBrwTeHhGPAjcCZ0fE32bmzqx5DlgPnNHGOiVJ6itTBnBmXpGZSzJzKXAR8J3M/J2IWAwQtS7cBcADba20TXbt2sXw8DDDw8MsWrSIE0444eDr559/vql1rFmzhptvbulcNElSh9WHnrullTthbYyIISCALcAHyinp8LZt3MYdf3oHu//vbuadNI9zrjyH5Zcsn/H6FixYwJYtWwD4xCc+wbHHHsuHP/zhssqd1IEDB5g1a1ZbtyFJOrx2DzFPZVo34sjMuzLzrcXzszNzeWa+NjN/JzOfaU+JP7Nt4za+tvZr7P7xbkjY/ePdfG3t19i2cVup27nmmms4/fTTWbFiBe985zt59tlnefrpp1m2bBn79u0DYM+ePYe8rrvjjjs47bTTWL58Oe9973t57rnngNptOD/ykY/wute9jptuuqnUeiVJzet2z7eucnfC2nDWBrZsqPVID+w7wIazNnD/394PwLev+Db7nj008PY9u4+//9DfA/Dsvz7LhrM28PDXHgbgmcdn9jfBO97xDjZv3szWrVs59dRTue6665g7dy5nnXUW3/jGNwC48cYbecc73nHI9bt79+5lzZo1bNq0iW3btrF//34+//nPH5y/YMEC7rvvPi666KIZ1SVJal2zPd+FCxe2tY7KBfDh7NmxZ9Lpz+56ttTtPPDAA/zyL/8yy5cvZ+PGjTz44IMAvP/972f9+vUArF+/nksvvfSQ9z388MMsW7aMV73qVQCsXr2a7373uwfnX3jhhaXWKUlq3nR6vpnJ448/3tZ6OvptSM1Yc9eag89nzZ51yOt5J82rDT9PMO+keQAcffzRhyx/7KJjZ1bDmjV89atfZcWKFWzYsIG77roLgJUrV/Loo49y1113ceDAAV772tdOa73HHHPMjOqRJLWu28d8J+qpHvA5V57D7KMPvWXj7KNnc86V55S6naeffprFixezb98+Nm7ceMi897znPbzrXe96Ue8X4OSTT+bRRx/lkUceAeCGG25g1apVpdYmSZqe6R7zbffQc11PBfDyS5bztnVvY94r5kHAvFfM423r3tbSWdCT+fM//3N+8Rd/kZUrV3LKKaccMu+SSy7hqaee4uKLL37R++bMmcP69ev5rd/6LZYvX84RRxzBBz7QkZPDJUkNTKfn24mh57rIzI5sCGBkZCRHR0cPmbZ9+3ZOPfXUjtXQqptvvplbbrmFG264obR19trPQJJ6waJFi6YVvgsXLiw9fCPi3swcmWxe5Y4BV9nll1/Obbfdxje/+c1ulyJJmsJ0e76dZgBPw+c+97lulyBJKlmnjvlOZABLkvrKdIaeu9Hzreupk7AkSZpKVW60MRV7wJKkvtArPd86e8CSpL7QKz3fOgMYmDVr1sGvIBweHuaqq64qbd1btmzxrGlJaqOq3WKyWT01BN1oeKHVa7eOOuqog19JWLYtW7YwOjrK+eef35b1S9Kgq9otJpvVUz3gRj/kdvzwd+/ezcknn8zDD9e+Weniiy/mmmuuAeD3fu/3GBkZ4TWveQ0f//jHD75n8+bNvPGNb2TF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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"id": "OurLMS_zODbK"
},
"source": [
"## Table\n",
"The table below shows the time, the 3rd order numerical approximation, $w$, the exact solution, $y$, and the exact error $|y(t_i)-w_i|$ for the linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"id": "5YyUP-p7ODbK",
"outputId": "983fc491-69a7-4d1e-bf6e-90f542ecdbb0"
},
"source": [
"\n",
"d = {'time t_i': t[0:10], 'Taylor ':w[0:10],'Exact (y)':y[0:10],'Exact Error':np.abs(np.round(y[0:10]-w[0:10],10))}\n",
"df = pd.DataFrame(data=d)\n",
"df\n"
],
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" time t_i | \n",
" Taylor | \n",
" Exact (y) | \n",
" Exact Error | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2000.0 | \n",
" 6.000000 | \n",
" 6.000000 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 1 | \n",
" 2000.1 | \n",
" 6.060301 | \n",
" 6.060301 | \n",
" 2.500000e-09 | \n",
"
\n",
" \n",
" 2 | \n",
" 2000.2 | \n",
" 6.121208 | \n",
" 6.121208 | \n",
" 5.100000e-09 | \n",
"
\n",
" \n",
" 3 | \n",
" 2000.3 | \n",
" 6.182727 | \n",
" 6.182727 | \n",
" 7.700000e-09 | \n",
"
\n",
" \n",
" 4 | \n",
" 2000.4 | \n",
" 6.244865 | \n",
" 6.244865 | \n",
" 1.030000e-08 | \n",
"
\n",
" \n",
" 5 | \n",
" 2000.5 | \n",
" 6.307627 | \n",
" 6.307627 | \n",
" 1.300000e-08 | \n",
"
\n",
" \n",
" 6 | \n",
" 2000.6 | \n",
" 6.371019 | \n",
" 6.371019 | \n",
" 1.580000e-08 | \n",
"
\n",
" \n",
" 7 | \n",
" 2000.7 | \n",
" 6.435049 | \n",
" 6.435049 | \n",
" 1.860000e-08 | \n",
"
\n",
" \n",
" 8 | \n",
" 2000.8 | \n",
" 6.499722 | \n",
" 6.499722 | \n",
" 2.150000e-08 | \n",
"
\n",
" \n",
" 9 | \n",
" 2000.9 | \n",
" 6.565046 | \n",
" 6.565046 | \n",
" 2.440000e-08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" time t_i Taylor Exact (y) Exact Error\n",
"0 2000.0 6.000000 6.000000 0.000000e+00\n",
"1 2000.1 6.060301 6.060301 2.500000e-09\n",
"2 2000.2 6.121208 6.121208 5.100000e-09\n",
"3 2000.3 6.182727 6.182727 7.700000e-09\n",
"4 2000.4 6.244865 6.244865 1.030000e-08\n",
"5 2000.5 6.307627 6.307627 1.300000e-08\n",
"6 2000.6 6.371019 6.371019 1.580000e-08\n",
"7 2000.7 6.435049 6.435049 1.860000e-08\n",
"8 2000.8 6.499722 6.499722 2.150000e-08\n",
"9 2000.9 6.565046 6.565046 2.440000e-08"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2c5BNvf5ODbK"
},
"source": [
"## 2. Non-Linear Population Equation \n",
"\\begin{equation} y^{'}=0.2y-0.01y^2, \\ \\ (2000 \\leq t \\leq 2020), \\end{equation}\n",
"with the initial condition,\n",
"\\begin{equation}y(2000)=6.\\end{equation}\n",
"## Specific 3rd Order Taylor for the Non-Linear Population Equation\n",
"To write the specific 3rd Order Taylor difference equation for the intial value problem we need to calculate the first derivative of \n",
"\\begin{equation}f(t,y)=0.2y-0.01y^2,\\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "rhqEbnhaODbK"
},
"source": [
"def nonlinfun(t,w):\n",
" ftw=0.2*w-0.01*w*w\n",
" return ftw"
],
"execution_count": 9,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "PJ5lJfWDODbL"
},
"source": [
"with respect to $t$\n",
"\\begin{equation} f'(t,y)=0.2y'-0.02y'y=0.2(0.2y-0.01y^2)-0.02(0.2y-0.01y^2)y,\\end{equation}\n",
"\\begin{equation}=(0.2-0.02y)(0.2y-0.01y^2)=(0.2-0.02y)f(t,y), \\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "vuW4jSWqODbL"
},
"source": [
"def nonlinfun_d(t,w):\n",
" ftw=0.2*nonlinfun(t,w)-0.02*nonlinfun(t,w)*w\n",
" return ftw"
],
"execution_count": 10,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "VXdnW_g1ODbL"
},
"source": [
"and the second derivative with respect to $t$\n",
"\\begin{equation} f''(t,y)=-0.02y'(0.2y-0.01y^2)+(0.2-0.02y)(0.2y'-0.02y'y),\\end{equation}\n",
"\\begin{equation}=-0.02(0.2y-0.01y^2)^2+(0.2-0.02y)^2(0.2y-0.01y^2), \\end{equation}"
]
},
{
"cell_type": "code",
"metadata": {
"id": "2uh2-bQIODbL"
},
"source": [
"def nonlinfun_dd(t,w):\n",
" ftw=-0.02*nonlinfun(t,w)*nonlinfun(t,w)+(0.2-0.02*w)*nonlinfun_d(t,w)\n",
" return ftw"
],
"execution_count": 11,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "l9oOxukdODbL"
},
"source": [
"### Non-Linear Population 3rd Order Taylor Difference equation\n",
"Substituting the derivatives of the non-linear population equation into the 3rd order Taylor equation gives the difference equation \n",
"\\begin{equation} w_{i+1}= w_{i} + h\\big[\\big(0.2w_i-0.01w_i^2\\big)+\\frac{h}{2}\\big((0.2-0.02w_i)(0.2w_i-0.01w_i^2)\\big)+\\end{equation}\n",
"\\begin{equation}\n",
"\\frac{h^2}{6}\\big(-0.02(0.2w_i-0.01w_i^2)^2+(0.2-0.02w_i)^2(0.2w_i-0.01w_i^2)\\big)\\big], \\end{equation}\n",
"for $i=0,...,199$, where $w_i$ is the numerical approximation of $y$ at time $t_i$, with the initial condition\n",
"$$w_0=6.$$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "rPOePaa7ODbL"
},
"source": [
"w=np.zeros(N+1)\n",
"w[0]=6.0\n",
"for i in range (0,N):\n",
" w[i+1]=w[i]+h*(nonlinfun(t[i],w[i])+h/2*nonlinfun_d(t[i],w[i])+h*h/6*nonlinfun_dd(t[i],w[i]))"
],
"execution_count": 12,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "hz29Q50dODbM"
},
"source": [
"## Results\n",
"The plot below shows the 3rd order numerical approximation, $w$ (circles) for the non-linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "ret94tWOODbM",
"outputId": "9c94a538-2ac4-4a02-d6a6-3753e40b7590"
},
"source": [
"fig = plt.figure(figsize=(8,4))\n",
"plt.plot(t,w,'o:',color='purple',label='Taylor')\n",
"plt.legend(loc='best')\n",
"plt.show()"
],
"execution_count": 13,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAD4CAYAAAA0JjXXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAZhElEQVR4nO3dfZRcdZ3n8feXpCEJYAtJVIbYdByFwQXiOM3gw+wQtx2fDgjDohBhTVQ2h5lZVuYsh8UFF9HD7Cw7Z1dXPDjNU5TJQWYYHmQRFbNyOGdXgcAGGmV5cDYwrSIhjg0IkU787R91O1aaqnQ93Kq6t+r9OqdPV917697fr29Xf/p+f/feipQSkiSpu/bpdQMkSRpEBrAkST1gAEuS1AMGsCRJPWAAS5LUAwu7ubFly5al0dHRbm5SkqSeuf/++59NKS2vNa+rATw6OsrmzZu7uUlJknomIp6sN88StCRJPWAAS5LUAwawJEk90NUx4FpmZmaYmppix44dvW5KTyxatIgVK1YwNDTU66ZIkrqo5wE8NTXFgQceyOjoKBHR6+Z0VUqJ7du3MzU1xcqVK3vdHElSF/U8gHfs2DGQ4QsQESxdupRt27b1uimSNJAmN06y6cJNTD85TSwI0q7E8GHDjF86ztFnHN3Rbfc8gIGBDN9Zg9x3Seq0WgE7+50Aqj4QMO2qPJl+cprb1t8G0NEQLkQAS5LUjlpBWy9gZ7+zl0/jnXlxhk0XbjKAO2n79u2Mj48D8PTTT7NgwQKWL6/ctOTee+9l3333nXcd69at44QTTuDUU0/taFslaVC1ciS7t4BtxPRT0+2tYB6lC+DdO+GpaYZH2q/TL126lC1btgDwmc98hgMOOIDzzjsvr+bWtGvXLhYsWNDRbUhSGeV9JNuO4ZHhzqw4U6oAntw4yW3rb2PmxRmgc3X6K6+8komJCV5++WXe+MY3ct1117Fr1y6OOeYYHnvsMYaGhnjuuedYtWoVjz322B6v3bRpE+eddx47d+7k2GOP5YorrmC//fZjdHSU0047jTvvvJPzzz+f008/Pbf2SlLZNBO0nQrYvRlaMsT4peMd3UbhbsSxYfUGtmyoHJHumtnFhtUbeOhvHgLgO5/6zu7wnTXz4gzfPPebALz47ItsWL2BR297FIAXnn6hpTaccsop3HfffTz44IMceeSRXH311Rx44IGsXr2a22+/HYCvfe1rnHLKKXtcv7tjxw7WrVvHDTfcwOTkJDt37uSKK67YPX/p0qU88MADhq+kgTC5cZLPj36eS+ISPrvws1wSl3DZssv4iwP+gpvOvInpJysl3l4GbbXYp3JS7PBhw5w4ceJgnAXdqOemnqs5/cXtL+a6nYcffpiLLrqIX/ziF7zwwgu8973vBeCss87isssu4+STT+baa6/lyiuv3ON1jz76KCtXruTwww8HYO3atXzpS1/i3HPPBeC0007LtZ2SVATNHM2+tP2l3jSSSsCmX6dXjCF367KjuQoXwOvuWrf78YKhBXs8Hx4Z3v0fU7XZOv2SZUv2WP6A1x3QWhvWreOWW25h1apVbNiwgbvuuguAd77znWzdupW77rqLXbt2cdRRRzW13v3337+l9khSERS9bDxrbtD2KmDnU7gA3pvxS8f3GAOGztTpn3/+eQ455BBmZmbYuHEjhx566O55H/3oR/nIRz7Cpz/96Ve87ogjjmDr1q088cQTu8eOjz/++FzbJkndUh24RQraoh3JtqpUATz7Q83zLOhaPve5z3HcccexfPlyjjvuOJ5//vnd88444wwuuugi1qxZ84rXLVq0iGuvvZYPfehDu0/COvvss3NtmyTlrZEj2yIEbdkCdj6RUvd+qmNjY2nz5s17THvkkUc48sgju9aGdt14443ceuutXHfddbmts2w/A0nltrcj217o56CNiPtTSmO15pXqCLjXzjnnHO644w6+8Y1v9LopktSwvQZul8J3NmQXL10MwEs/f6ljVcyyMICb8MUvfrHXTZCkefUycPv5aDZvhQjglNLAfihBN4cAJPWXXo7dGrTt63kAL1q0iO3bt7N06dKBC+HZzwNetGhRr5siqQR6eVbybOAatPnpeQCvWLGCqampgf1M3EWLFrFixYpeN0NSAfWilOyRbff0PICHhoZYuXJlr5shSYUxuXGSOz55x553jfLItu/MG8ARcQ1wAvBMSumobNpbgC8Di4CdwJ+mlO7tZEMlqV9187IgA7c4GjkC3gBcDny1atplwCUppTsi4gPZ89W5t06S+lA3S8sGbnHNG8AppbsjYnTuZOBV2eNh4Cf5NkuS+kc3Atex2/JpdQz4XOBbEfFXVD7S8B31FoyI9cB6gJGRkRY3J0nlsDtsn5pm8cGL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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9I1lKA7ZODbM"
},
"source": [
"## Table\n",
"The table below shows the time and the 3rd order numerical approximation, $w$, for the non-linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"id": "cmxKRz-zODbM",
"outputId": "24536e02-38d8-42d3-d629-70d7c450bcd6"
},
"source": [
"d = {'time t_i': t[0:10], 'Taylor ':w[0:10]}\n",
"df = pd.DataFrame(data=d)\n",
"df\n",
"\n"
],
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" time t_i | \n",
" Taylor | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2000.0 | \n",
" 6.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 2000.1 | \n",
" 6.084335 | \n",
"
\n",
" \n",
" 2 | \n",
" 2000.2 | \n",
" 6.169332 | \n",
"
\n",
" \n",
" 3 | \n",
" 2000.3 | \n",
" 6.254983 | \n",
"
\n",
" \n",
" 4 | \n",
" 2000.4 | \n",
" 6.341279 | \n",
"
\n",
" \n",
" 5 | \n",
" 2000.5 | \n",
" 6.428207 | \n",
"
\n",
" \n",
" 6 | \n",
" 2000.6 | \n",
" 6.515760 | \n",
"
\n",
" \n",
" 7 | \n",
" 2000.7 | \n",
" 6.603924 | \n",
"
\n",
" \n",
" 8 | \n",
" 2000.8 | \n",
" 6.692689 | \n",
"
\n",
" \n",
" 9 | \n",
" 2000.9 | \n",
" 6.782043 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" time t_i Taylor \n",
"0 2000.0 6.000000\n",
"1 2000.1 6.084335\n",
"2 2000.2 6.169332\n",
"3 2000.3 6.254983\n",
"4 2000.4 6.341279\n",
"5 2000.5 6.428207\n",
"6 2000.6 6.515760\n",
"7 2000.7 6.603924\n",
"8 2000.8 6.692689\n",
"9 2000.9 6.782043"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "orTJIR9LODbM"
},
"source": [
"## 3. Non-Linear Population Equation with an oscilation \n",
"$$ y^{'}=0.2y-0.01y^2+\\sin(2\\pi t), \\ \\ (2000 \\leq t \\leq 2020), $$\n",
"with the initial condition,\n",
"$$y(2000)=6.$$\n",
"\n",
"## Specific 3rd Order Taylor for the Non-Linear Population Equation with an oscilation\n",
"To write the specific 3rd Order Taylor difference equation for the intial value problem we need calculate the first derivative of \n",
"$$f(t,y)=0.2y-0.01y^2+\\sin(2\\pi t),$$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "R-DfAVc-ODbN"
},
"source": [
"def nonlin_oscfun(t,w):\n",
" ftw=0.2*w-0.01*w*w+np.sin(2*np.math.pi*t)\n",
" return ftw"
],
"execution_count": 15,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "aJ4PzSiXODbN"
},
"source": [
"with respect to $t$\n",
"$$ f'(t,y)=0.2y'-0.02y'y+2\\pi\\cos(2\\pi t)$$\n",
"$$=(0.2-0.02y)\\big(0.2y-0.01y^2+\\sin(2\\pi t)\\big)+2\\pi\\cos(2\\pi t) $$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "mwImso6_ODbN"
},
"source": [
"def nonlin_oscfun_d(t,w):\n",
" ftw=0.2*nonlinfun(t,w)-0.02*nonlinfun(t,w)*w+2*np.math.pi*np.cos(2*np.math.pi*t)\n",
" return ftw"
],
"execution_count": 16,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "b6_jnYwsODbN"
},
"source": [
"and the second derivative with respect to $t$\n",
"$$ f''(t,y)=-0.02y'(0.2y-0.01y^2+\\sin(2\\pi t))$$\n",
"$$+(0.2-0.02y)\\big(0.2y'-0.02y'y+2\\pi\\cos(2\\pi t)\\big)-(2\\pi)^2\\sin(2\\pi t)$$\n",
"$$=-0.02(0.2y-0.01y^2+2\\pi\\sin(2\\pi t))^2$$\n",
"$$+(0.2-0.02y)\\big((0.2-0.02y)(0.2y-0.01y^2+\\sin(2\\pi t))+ 2\\pi\\cos(2\\pi t) \\big)-(2\\pi)^2\\sin(2\\pi t) $$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "CCok0rCNODbN"
},
"source": [
"def nonlin_oscfun_dd(t,w):\n",
" ftw=-0.02*nonlin_oscfun(t,w)*nonlin_oscfun(t,w)+(0.2-0.02*w)*((0.2-0.02*w)*nonlin_oscfun(t,w)+2*np.math.pi*np.cos(2*np.math.pi*t))#-2*np.math.pi*2*np.math.pi*np.sin(2*np.math.pi*t)\n",
" return ftw"
],
"execution_count": 17,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "bVAAenLfODbO"
},
"source": [
"### Non-Linear Population with oscilation 3rd Order Taylor Difference equation\n",
"Substituting the derivatives of the non-linear population equation with oscilation into the 3rd order Taylor equation gives the difference equation \n",
"$$ w_{i+1}= w_{i} + h\\big[\\big(0.2w_i-0.01w_i^2+\\sin(2\\pi t_i)\\big)$$\n",
"$$+\\frac{h}{2}\\big((0.2-0.02w_i)\\big(0.2w_i-0.01w_i^2+\\sin(2\\pi t_i)\\big)+2\\pi\\cos(2\\pi t_i)\\big)+$$\n",
"$$\\frac{h^2}{6}\\big(-0.02(0.2w_i-0.01w_i^2+2\\pi\\sin(2\\pi t_i))^2$$ \n",
"$$+(0.2-0.02w_i)\\big((0.2-0.02w_i)[0.2w_i-0.01w_i^2+\\sin(2\\pi t_i)]$$\n",
"$$+ 2\\pi\\cos(2\\pi t_i) \\big)-(2\\pi)^2\\sin(2\\pi t_i) \\big)\\big], $$\n",
"for $i=0,...,199$, where $w_i$ is the numerical approximation of $y$ at time $t_i$, with the initial condition\n",
"$$w_0=6.$$"
]
},
{
"cell_type": "code",
"metadata": {
"id": "KnoN2Q_OODbO"
},
"source": [
"w=np.zeros(N+1)\n",
"w[0]=6.0\n",
"for i in range (0,N):\n",
" w[i+1]=w[i]+h*(nonlin_oscfun(t[i],w[i])+h/2*nonlin_oscfun_d(t[i],w[i])+h*h/6*nonlin_oscfun_dd(t[i],w[i]))"
],
"execution_count": 18,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "dPUnMnFyODbO"
},
"source": [
"## Results\n",
"The plot below shows the 3rd order numerical approximation, $w$ (circles) for the non-linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "gGj_8HlDODbO",
"outputId": "d8e5f93d-bcf0-4b41-b35d-8d9e4617361c"
},
"source": [
"fig = plt.figure(figsize=(8,4))\n",
"plt.plot(t,w,'o:',color='purple',label='Taylor')\n",
"plt.legend(loc='best')\n",
"plt.show()"
],
"execution_count": 19,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "h3aDXXbKODbO"
},
"source": [
"## Table\n",
"The table below shows the time and the 3rd order numerical approximation, $w$, for the non-linear population equation:"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"id": "HNhsd0JWODbO",
"outputId": "39bb45cf-5396-4b33-8b7d-b47489e3b130"
},
"source": [
"d = {'time t_i': t[0:10], 'Taylor ':w[0:10]}\n",
"df = pd.DataFrame(data=d)\n",
"df\n",
"\n"
],
"execution_count": 20,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" time t_i | \n",
" Taylor | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2000.0 | \n",
" 6.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 2000.1 | \n",
" 6.115834 | \n",
"
\n",
" \n",
" 2 | \n",
" 2000.2 | \n",
" 6.285332 | \n",
"
\n",
" \n",
" 3 | \n",
" 2000.3 | \n",
" 6.476682 | \n",
"
\n",
" \n",
" 4 | \n",
" 2000.4 | \n",
" 6.649942 | \n",
"
\n",
" \n",
" 5 | \n",
" 2000.5 | \n",
" 6.772316 | \n",
"
\n",
" \n",
" 6 | \n",
" 2000.6 | \n",
" 6.830702 | \n",
"
\n",
" \n",
" 7 | \n",
" 2000.7 | \n",
" 6.836694 | \n",
"
\n",
" \n",
" 8 | \n",
" 2000.8 | \n",
" 6.822138 | \n",
"
\n",
" \n",
" 9 | \n",
" 2000.9 | \n",
" 6.826948 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" time t_i Taylor \n",
"0 2000.0 6.000000\n",
"1 2000.1 6.115834\n",
"2 2000.2 6.285332\n",
"3 2000.3 6.476682\n",
"4 2000.4 6.649942\n",
"5 2000.5 6.772316\n",
"6 2000.6 6.830702\n",
"7 2000.7 6.836694\n",
"8 2000.8 6.822138\n",
"9 2000.9 6.826948"
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "szC70TboODbP"
},
"source": [
""
],
"execution_count": 20,
"outputs": []
}
]
}